﻿using RotovapPlatform.Domain.Business.Storage.Entities;
using RotovapPlatform.Domain.Business.Storage.Enums;

namespace RotovapPlatform.Domain.Business.Interfaces;

public interface IStorageLocationRepository
{
	Task<StorageLocation?> GetByIdAsync(int id);
	Task<IEnumerable<StorageLocation>> GetAllAsync();
	Task AddAsync(StorageLocation location);
	Task UpdateAsync(StorageLocation location);
	Task DeleteAsync(int id);

	// 特定查询方法
	Task<StorageLocation?> GetByPositionAsync(LocationCode locationCode, int position, bool forceRefresh = false);
	Task<IEnumerable<StorageLocation>> GetByLocationCodeAsync(LocationCode locationCode, bool forceRefresh = false);
}